﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using MySql.Data.MySqlClient;

namespace SeCompUFSCarWeb.Models
{
    public class Interests
    {
        //Dados de Conexão
        string strconn = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

        private string userID;
        private string outros;
        private bool web;
        private bool computacaoGrafica;
        private bool empreendedorismo;
        private bool seguranca;
        private bool jogos;
        private bool hardware;
        private bool mobile;
        private bool softwareLivre;

        #region Constructors
        public Interests() { }

        public Interests(string userID, string outros, bool web, bool computacaoGrafica, bool empreendedorismo, bool seguranca, bool jogos, bool hardware, bool mobile, bool softwareLivre) 
        {
            this.userID = userID;
            this.outros = outros;
            this.web = web;
            this.computacaoGrafica = computacaoGrafica;
            this.empreendedorismo = empreendedorismo;
            this.seguranca = seguranca;
            this.jogos = jogos;
            this.hardware = hardware;
            this.mobile = mobile;
            this.softwareLivre = softwareLivre;
        }
        #endregion

        #region Getters and Setters
        public bool SoftwareLivre
        {
            get { return softwareLivre; }
            set { softwareLivre = value; }
        }
        
        public bool Mobile
        {
            get { return mobile; }
            set { mobile = value; }
        }
        
        public bool Hardware
        {
            get { return hardware; }
            set { hardware = value; }
        }
        

        public bool Jogos
        {
            get { return jogos; }
            set { jogos = value; }
        }
        

        public bool Seguranca
        {
            get { return seguranca; }
            set { seguranca = value; }
        }
        

        public bool Empreendedorismo
        {
            get { return empreendedorismo; }
            set { empreendedorismo = value; }
        }
        

        public bool ComputacaoGrafica
        {
            get { return computacaoGrafica; }
            set { computacaoGrafica = value; }
        }

        public bool Web
        {
            get { return web; }
            set { web = value; }
        }

        public string Outros
        {
            get { return outros; }
            set { outros = value; }
        }

        public string UserID
        {
            get { return userID; }
            set { userID = value; }
        }

        #endregion

        public bool Insert()
        {
            //Utilizando a conexão
            MySqlConnection conn = new MySqlConnection(strconn);

            //INSERT Query
            string query = "INSERT INTO secomp.interests (user_id, web, computacaoGrafica, empreendedorismo, seguranca, jogos, hardware, mobile, softwarelivre, others) VALUES(@userID, @web, @computacaoGrafica, @empreendedorismo, @seguranca, @jogos, @hardware, @mobile, @softwarelivre, @outros)";

            MySqlCommand cmd = new MySqlCommand(query, conn);
            cmd.Parameters.AddWithValue("@userID", userID);
            cmd.Parameters.AddWithValue("@web", web);
            cmd.Parameters.AddWithValue("@computacaoGrafica", computacaoGrafica);
            cmd.Parameters.AddWithValue("@empreendedorismo", empreendedorismo);
            cmd.Parameters.AddWithValue("@seguranca", seguranca);
            cmd.Parameters.AddWithValue("@jogos", jogos);
            cmd.Parameters.AddWithValue("@hardware", hardware);
            cmd.Parameters.AddWithValue("@mobile", mobile);
            cmd.Parameters.AddWithValue("@softwareLivre", softwareLivre);
            cmd.Parameters.AddWithValue("@outros", outros);

            try
            {
                conn.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                return false;
            }
            finally
            {
                conn.Close();
            }

            return true;

        }

    }
}